The real-time rendering of three-dimensional graphics has a number of appealing applications on mobile terminals, including games, man-machine interfaces, messaging and m-commerce. Since three-dimensional rendering is a computationally expensive task, dedicated hardware must often be built to reach sufficient performance. Innovative ways of lowering the complexity and bandwidth usage of this hardware architecture are thus of great importance.
The main bottleneck, especially for mobile phones, is memory bandwidth. A common technique for reducing memory bandwidth usage is texture compression. Texturing refers to the process of “gluing” images (here called textures) onto the rendered triangles. If the textures are compressed in memory, and then during accessing they are decompressed, a significant amount of bandwidth usage can be avoided.
There are several texture compression schemes available today, and the most practical ones are protected by patents.
The S3TC (also called DXTC) scheme is the most popular [1]. It uses 64 bits per 4×4 pixels, and the rate is 4 bits per pixel (bpp). During decompression, two base colors (stored in 16 bits) are used, and in between these (in red, green, blue, RGB, space), two more colors are interpolated. This gives a color palette of four colors. Each pixel in the 4×4 block then stores a 2-bit index into the local color palette. During the interpolation of the two more colors, multiplication by ⅓ and ⅔ is performed, which is not ideal in hardware. In addition, the compression using S3TC is relatively time consuming.
Recently, Ström and Akenine-Möller [2] presented a texture compression scheme called PACKMAN. It encodes a block of 2×4 texels into 32 bits. Only one color is possible per block, but in each pixel this color can be modified in intensity. The major goal of PACKMAN was to allow for minimal decompression complexity, and this goal was reached. However, the quality was about 2.5 dB worse than S3TC in terms of Peak Signal to Noise Ratio (PSNR). The major problem in terms of quality was the fact that the chrominance was so heavily quantized. This introduced block artifacts.
In order to mitigate this, Ström and Akenine-Möller introduced an improved version of PACKMAN, called iPACKMAN or Ericsson Texture Compression (ETC) [3, 4]. The main trick was to code two 2×4 blocks in common, which allowed for differential encoding of the colors. This made it possible to have finer quantization of the colors, which resulted in an increased quality: of 3 dB. This quality increase came at the cost of some hardware complexity, though iPACKMAN/ETC is most likely still lower in terms of complexity than S3TC.
Even though iPACKMAN/ETC provides a high quality in terms of PSNR, it is still desirable to provide an image processing that can either be employed alone or be used as a complement for improving the iPACKMAN/ETC scheme. This image processing should in particular be adapted for managing those images for which iPACKMAN/ETC produces artifacts that are clearly visible for the viewer.